package cn.wolfcode.Controller;

import cn.wolfcode.qo.jsonResult;
import com.alibaba.fastjson.JSON;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

@Controller
public class jsonController {

    //关于springmvc放回json字符串的数据交换格式的两种方式


    //springmvc响应浏览器的原始方式（很挫）  需求：返回当前时间给浏览器
    @RequestMapping("/getTime")
    public void getTime(HttpServletResponse response) throws IOException {
        //设置返回的数据交换格式  与原来的返回html的数据交换格式进行杜比
        response.setContentType("application/json;charset=utf-8");
        //从响应对象获取打印输出流
        PrintWriter writer = response.getWriter();
        //封装用于返回浏览器的json对象信息
        jsonResult jsonResult =new jsonResult();
        jsonResult.setSuccess(true);
        jsonResult.setMsg(new Date().toLocaleString());
        //向响应对象的输出流写入json字符串
        writer.print(JSON.toJSONString(jsonResult));
        writer.flush(); //刷新响应端的打印流的缓冲
    }


    //springmvc响应浏览器的注解方式（推荐）  需求：返回当前时间给浏览器
    @RequestMapping("/getTime2")
    @ResponseBody  //使用这个注解，当我们返回对象给html时，会解析为json字符串并且放回
    public jsonResult getTime2(HttpServletResponse response) throws IOException {
        jsonResult jsonResult =new jsonResult();
        jsonResult.setSuccess(true);
//        jsonResult.setMsg(new Date().toLocaleString());
         return jsonResult;
    }

}
